package com.tarzan.common.core.exception;

/**
 * @Package com.tarzan.common.core.exception
 * @Title ErrorCodesEnum
 * @Description TODO
 * @Author liujinshan
 * @CreateTime 2021/6/29 15:46
 *
 *  *  * 错误码定义
 *  *  * @author ljs
 *  *  * 1-4位 1101 代表 后台管理系
 *  *  * 异常类型：5～6位，标识数据库、接口、缓存、权限等
 *  *  *	01-参数异常，参数有效性校验错误，在接口的response 的msg中请将校验有问题的参数返回给调用方；
 *  *  *	02-数据库异常，操作数据库异常，log的message中要有sql、参数信息，sql如果能在堆栈中体现，可以不放在message中；
 *  *  *	03-缓存异常，如对redis、JVM缓存操作失败；
 *  *  *	04-权限异常，功能权限、数据权限类异常；
 *  *  *	05-接口异常，接口调用异常，log 的message中要包含接口地址、接口参数信息，如果能在堆栈中体现，可以不放在message中；
 *  *  *	06-业务异常, 业务执行异常， 比如”用户名已存在”，此种类型的异常通常前端要关注；
 *  *  *	07-其它运行异常，如JAVA程序运行时异常；
 *  *  *	08-消息队列异常，如对rabbitMq 的操作失败；
 *  *  *	...
 *  *  *	99-除以上外的异常
 *  *  *	异常序列号：6～10位，每个模块自定义，要求模块范围内唯一性
 */
public enum ErrorCodesEnum {
    SUSSESS("0",""),
    //01
    REQUEST_PARAM_ERROR("1101010001","请求参数校验异常"),
    REQUEST_PARAM_NOT_EMPTY_ERROR("1101010002","请求参数不能为空"),
    //02
    QUERY_USER_INFO_ERROR("1101020001","查询用户信息异常"),
    INSERT_USER_INFO_ERROR("1101020002","插入用户信息异常"),
    UPDATE_USER_INFO_ERROR("1101020003","查询用户信息异常"),
    DELETE_USER_INFO_ERROR("1101020004","查询用户信息异常"),
    QUERY_ROLE_INFO_ERROR("1101020005","查询角色信息异常"),
    INSERT_ROLE_INFO_ERROR("1101020006","查询角色信息异常"),
    UPDATE_ROLE_INFO_ERROR("1101020007","查询角色信息异常"),
    DELETE_ROLE_INFO_ERROR("1101020008","查询角色信息异常"),
    QUERY_ROLE_BINDING_USER_INFO_ERROR("1101020009","查询角色绑定的用户信息异常"),
    INSERT_ROLE_BINDING_USER_INFO_ERROR("11010200010","插入角色绑定用户信息异常"),
    INSERT_USER_BINDING_ROLE_ERROR("11010200011","插入用户角色信息异常"),
    QUERY_ROLE_ERROR("11010200011","查询角色信息异常"),
    DELETE_MENU_ERROR("11010200012","删除菜单异常"),
    QUERY_DEPT_DETAIL_ERROR("11010200013","查询部门详情异常"),
    INSERT_DEPT_INFO_ERROR("11010200014","插入部门信息异常"),
    UPDATE_DEPT_INFO_ERROR("11010200015","更新部门信息异常"),
    DELETE_DEPT_INFO_ERROR("11010200015","删除部门信息异常"),
    //04
    PERMISSIONS_ERROR("1101040001","未拥有该操作权限"),
    //06
    USER_DOES_NOT_EXIST_ERROR("1101060001","该用户不存在"),
    USER_LOCK_ERROR("1101060002","该用户已被锁定"),
    PASSWORD_ERROR("1101060003","密码错误"),
    REQUEST_TIMEOUT_ERROR("1101060004","请求超时"),
    USER_NOT_LOGIN_ERROR("1101060005","该用户未登录"),
    ACCOUNT_DEACTIVATED_ERROR("1101060006","对不起您的账号被停用"),
    //07
    JSON_CAST_ERROR("1101070001","序列化JSON异常"),
    REF_ERROR("1101070002","反射属性异常"),
    //99
    OTHER("1101999999","操作失败")
    ;

    private String code;

    private String msg;

    private ErrorCodesEnum(String code, String msg){
        this.code = code;
        this.msg = msg;
    }

    public String code(){
        return this.code;
    }

    public String msg(){
        return this.msg;
    }
}
